package top.infopub.mgr.sts.service;


import java.util.Date;
import java.util.List;

import top.infopub.generic.GenericService;
import top.infopub.mgr.sts.domain.OrgProQaDomain;
import top.infopub.mgr.sts.domain.QaConsoleDomain;
import top.infopub.model.sts.OrgProQa;

import com.github.pagehelper.Page;


public interface OrgProQaService extends GenericService<OrgProQa, String> {

    /**
     * 根据月份及公司id查询记录
     * @param month 月份
     * @param orgId 公司id
     * @return 
     * @see
     */
    List<QaConsoleDomain> selectQaProByWhere(Date month, String orgId);

    /**
     * 根据条件查询项目经营指标记录
     * @param page 分页参数
     * @param month 查询月份
     * @param orgId 公司id
     * @param aimType 指标类型
     * @return 
     * @see
     */
    Page<QaConsoleDomain> selectProTargetByWhere(Page<QaConsoleDomain> page, Date month,
                                                 String orgId, String aimType);

    /**
     * 根据月份及公司id查询经营指标完成率
     * @param month 月份
     * @param orgId 公司id
     * @return 
     * @see
     */
    List<QaConsoleDomain> selectQaRateByWhere(Date month, String orgId);

    /**
     * 根据条件查询经营指标金额数据
     * @param belongsYear 查询年份
     * @param orgId 公司id
     * @param aimType 指标类型
     * @return 
     * @see
     */
    List<QaConsoleDomain> selectQaAmountByWhere(Integer belongsYear, String orgId, String aimType);

    /**
     * 根据条件查询记录
     * @param monthStart 开始月份
     * @param monthEnd 结束月份
     * @param type 公司类型
     * @param orgId 公司id
     * @param orgProName 项目名称
     * @param aimType 指标类型 1=自行承接建安额 2=融资额 3=投资额 4=管理净利润 5=管理费用
     *                  6=管理费率 7=营销费用 8=营销费率 9=投资性现金流入 10=投资性现金流出
     * @return 
     * @see
     */
    List<OrgProQaDomain> selectQaByWhere(Date monthStart, Date monthEnd, String type,
                                         String orgId, String orgProName);
}